lib/repo: Define a metadata key, ostree.deploy-collection-id
authorMatthew Leeds <matthew.leeds@endlessm.com>
Wed, 19 Sep 2018 21:59:47 +0000 (14:59 -0700)
committerAtomic Bot <atomic-devel@projectatomic.io>
Fri, 21 Sep 2018 13:04:51 +0000 (13:04 +0000)
commitfc84fb402c397213108710e17ddf88108f0ae2cb
tree6ef936a17a652ba66d3da0f6ff970f6fb7c71987
parentb32c9e0df9ea402bcae1fb23f56467311aa8d66e
lib/repo: Define a metadata key, ostree.deploy-collection-id

This commit defines a metadata key that tells clients to update their
remote config to add a collection ID. This functionality is currently
implemented in Flatpak for the key "xa.collection-id", but there are two
good reasons for moving the key to OSTree:

1) Servers such as Flathub shouldn't set xa.collection-id in their
metadata now or in the medium term future, because many users are still
using old versions of Flatpak and OSTree[1] which would hit various
bugs[2][3][4] on the P2P code paths that are enabled by collection IDs.
Defining a new key means that only clients running recent
(as-yet-unreleased) versions of Flatpak and OSTree will pay attention to
it and deploy the collection ID, leaving the users on old versions
unaffected.

2) OSTree is as "invested" in collection IDs as Flatpak, so there's no
reason the key should be defined in Flatpak rather than here. According
to Philip Withnall, the reason the key was put in Flatpak originally was
that at the time there was uncertainty about tying OSTree to collection
IDs.

[1] https://ahayzen.com/direct/flathub.html#downloadsbyflatpakstacked
[2] https://github.com/ostreedev/ostree/commit/e4e6d85ea
[3] https://github.com/flatpak/flatpak/commit/5813639f
[4] https://github.com/flatpak/flatpak/commit/5b21a5b7

Closes: #1726
Approved by: pwithnall
apidoc/ostree-sections.txt
src/libostree/ostree-repo.h